package com.zlkj.pro.modular.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zlkj.pro.modular.admin.entity.User;
import com.zlkj.pro.modular.admin.model.dto.SmsDTO;
import com.zlkj.pro.modular.admin.model.dto.UserDTO;
import com.zlkj.pro.modular.admin.model.vo.UserVO;
import com.zlkj.pro.modular.business.model.vo.AgentVO;

import java.util.List;


public interface AppUsersService extends IService<User> {

    UserVO login(UserDTO dto, Boolean validatePassword);

    UserVO loginWithSmsCode(UserDTO dto);

    void getSmsCode(SmsDTO dto);

    void forgotPassword(UserDTO dto);

    void changePassword(UserDTO dto);

    void changePhone(UserDTO dto);

    void changeName(UserDTO dto);

    UserVO getUserInfo(Long userId);

    AgentVO getAgentInfo(Long userId);

    List<UserVO> getAgentUserList(UserDTO dto);

    List<UserVO> findManagers(Long userId);

    boolean add(UserDTO dto);

    UserVO detail(UserDTO dto);

    boolean edit(UserDTO dto);

    void changeAvatar(UserDTO dto);

    List<UserVO> getAgentUserListByAgentId(UserDTO dto);

    void bindWxMpOpenId(String openId);

    UserVO getWebUserInfo(Long userId);

    List<UserVO> getAgentUserListByRoleId(UserDTO dto);
}
